using System.Collections.Generic;
using System.ComponentModel;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;
using VO.Entities;

namespace VO.RestService
{
    [ServiceContract]
    public interface ITracksService
    {
        [Description("Get all the tracks")]
        [OperationContract]
        [ApplyDataContractResolverAttribute]
        List<Track> GetTracks();

        [Description("Create a new track")]
        [OperationContract]
        [ApplyDataContractResolverAttribute]
        Track Create(Track instance);

        [Description("Get the track with specified ID")]
        [OperationContract]
        [ApplyDataContractResolverAttribute]
        Track Get(string id);

        [Description("Update the track")]
        [OperationContract]
        [ApplyDataContractResolverAttribute]
        Track Update(string id, Track instance);

        [Description("Delete the track with specified ID")]
        [OperationContract]
        [ApplyDataContractResolverAttribute]
        void Delete(string id);
    }
}